package jianzhiOffer;

/**
 * 28. 对称的二叉树
 * 请实现一个函数，用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样，那么它是对称的。
 * <p>
 * 例如，二叉树 [1,2,2,3,4,4,3] 是对称的。
 *
 * @author 司松坡
 * @createTime 2023年04月25日
 */
public class Jian28 {
    public boolean isSymmetric(TreeNode root) {
       if (null == root){
           return true;
       }
       return symmetric(root.right,root.left);
    }

    public boolean symmetric(TreeNode treeNode1, TreeNode treeNode2) {
        if (treeNode1 != null && treeNode2 != null) {
            if (treeNode1.val == treeNode2.val) {
                return symmetric(treeNode1.left,treeNode2.right) && symmetric(treeNode1.right,treeNode2.left);
            } else {
                return false;
            }
        }
        if (treeNode1 == null && treeNode2 == null){
            return true;
        }
        return false;
    }
}
